/* UNIVERSIDADE FEDERAL DE CAMPINA GRANDE - UFCG
 * Disciplina: Laboratorio de Estrutura de Dados
 * Professor: Marco Aurelio Spohn
 * Alunos: Alexandre Sales Vasconcelos       Mat.: 20621146
 * Atividade 4
 */

/**
 * Implementar um algoritmo de ordenacao por InsertionSort.
 * 
 * @version 1.0 2008/05/12
 * @author Alexandre Sales Vasconcelos
 * @see <a href="http://lab.eda.ufcg.googlepages.com/ordenacaoelem"> Atividade 4 Problema 1</a>
 */

public class InsertionSort {

	/**
	 * Metodo da Classe de ordenacao InsertSort.
	 * 
	 * @param vetor Um Array de int para ser ordenado.
	 * @return Uma String com o vetor ordenado.
	 */
	public static String insertSort(int[] vetor) {
		int chave;
		int i;
		for (int j=1; j < vetor.length; j++) {
			chave = vetor[j];
			i = j - 1;
			while (i>=0 && vetor[i]> chave) {
				vetor[i+1] = vetor[i];
				i--;
			}
			vetor[i+1] = chave;
		}
		return vetorStr(vetor);
	}

	/**
	 * Metodo que converte um Array de int em uma String.
	 * 
	 * @param vetor Um Array de int a ser convertido.
	 * @return Uma String com a conversao do vetor.
	 */
	private static String vetorStr(int[] vetor) {
		String saida = "";
		for (int i=0; i<vetor.length; i++) {
			saida += vetor[i] + " ";
		}
		return saida.trim();
	}

}
